const cloud = require('wx-server-sdk');

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});

const db = cloud.database();

exports.main = async (event, context) => {
  try {
    const { code } = event;
    
    // 获取微信上下文
    const wxContext = cloud.getWXContext();
    
    // 生成唯一的 sessionId
    const sessionId = `${wxContext.OPENID}_${Date.now()}`;
    
    try {
      // 确保集合存在
      await db.createCollection('sessions').catch(err => {
        // 如果集合已存在，忽略错误
      });

      // 在数据库中存储会话信息
      await db.collection('sessions').add({
        data: {
          sessionId,
          openid: wxContext.OPENID,
          createTime: Date.now(),
          lastAccessTime: Date.now()
        }
      });
    } catch (dbError) {
      console.error('数据库操作失败:', dbError);
    }

    return {
      code: 200,
      msg: '获取成功',
      data: {
        sessionId,
        openid: wxContext.OPENID
      }
    };
  } catch (err) {
    console.error('云函数执行失败:', err);
    return {
      code: 500,
      msg: err.message || '获取sessionId失败',
      data: null
    };
  }
};